import type { RouteObject } from 'react-router-dom';

// 定义 meta 类型接口（明确字段和类型）
export interface RouteMeta {
  title: string; // 必选：页面标题
  isLogin?: boolean; // 可选：是否需要登录
  icon?: string; // 可选：菜单图标
  role?: string[]; // 可选：允许访问的角色
  cache?: boolean; // 可选：是否缓存页面
  bodyClass?: string; // 可选：body 类名
  nav?: nav; // 可选：导航栏配置
  // [key: string]: string | boolean | object | undefined; // 允许扩展其他自定义字段
}

// 扩展 RouteObject，添加 meta 字段
export interface nav {
  showFoot?: string | boolean, //foot,foot2,foot 传组件名称 不传即隐藏 是否显示底部部 优先级最高
  showNav?: string | boolean, //top,top2,top3 传组件名称 不传即隐藏 是否显示头部 优先级最高
  showLeftNav?: boolean, //是否显示左侧导航
  showTitle?: boolean, //是否显示标题
  showRightNav?: boolean, //是否显示右侧导航
};
// 扩展 RouteObject，添加 meta 字段
export type AppRouteObject = RouteObject & {
  meta?: RouteMeta;
  children?: AppRouteObject[]; // 子路由也继承该类型
};